#define _CRT_SECURE_NO_WARNINGS

#include "SList.h"

void Swap1(int* px, int* py)
{
	int tmp = *px;
	*px = *py;
	*py = tmp;
}

void Swap2(int* ppx, int* ppy)
{
	int* tmp = ppx;
	ppx = ppy;
	ppy = tmp;
}


void Swap3(int** ppx, int** ppy)
{
	int* tmp = *ppx;
	*ppx = *ppy;
	*ppy = tmp;
}

//void Test1()
//{
//	SListNode* plist = NULL;
//
//	int a = 10, b = 20;
//	int* ptra = &a, * ptrb = &b;
//
//	Swap1(&a, &b);
//	printf("a = %d, b = %d\n", a, b);
//	printf("a = %p, b = %p\n", ptra, ptrb);
//
//	Swap2(ptra, ptrb);
//	printf("a = %p, b = %p\n", ptra, ptrb);
//
//	Swap3(&ptra, &ptrb);
//	printf("a = %p, b = %p\n", ptra, ptrb);
//
//}


//void Test2()
//{
//	SListNode* plist = NULL;
//
//	SListPushBack(&plist, 1);
//	SListPushBack(&plist, 2);
//	SListPushBack(&plist, 3);
//	SListPushBack(&plist, 4);
//	SListPushBack(&plist, 5);
//
//	SListPrint(plist);
//
//	SListPopBack(&plist);
//	SListPopBack(&plist);
//	SListPopBack(&plist);
//	SListPopBack(&plist);
//
//	SListPrint(plist);
//
//	SListPushFront(&plist, 2);
//	SListPushFront(&plist, 3);
//	SListPushFront(&plist, 4);
//	SListPushFront(&plist, 5);
//
//	SListPrint(plist);
//
//	SListPopFront(&plist);
//	SListPopFront(&plist);
//	SListPopFront(&plist);
//	SListPopFront(&plist);
//	SListPopFront(&plist);
//	SListPopFront(&plist);
//
//	SListPrint(plist);
//
//}

void Test3()
{
	SListNode* plist = NULL;

	SListPushBack(&plist, 1);
	SListPushBack(&plist, 2);
	SListPushBack(&plist, 3);
	SListPushBack(&plist, 4);
	SListPushBack(&plist, 5);

	SListPrint(plist);

	//SListNode* ps =  SListFind(plist, 3);
	//SListInsertAfter(ps, 7);

	//SListPrint(plist);


	//ps = SListFind(plist, 7);
	//SListInsertr(&plist, ps, 6);

	SListNode* ps =  SListFind(plist, 5);
	SListEraseAfter(ps);
	
	SListPrint(plist);

}

int main()
{
	Test3();

	return 0;
}